package Exception;

import java.util.Scanner;

class Person {
    @Override
    protected Object clone() throws CloneNotSupportedException {
        return super.clone();
    }
}


public class Test {
    //异常捕获

    public static void main(String[] args) {
        //try中放的是一个业务逻辑
        try{
            System.out.println(100 / 0);//这里会捕获算术异常
            //try中的以下代码便不会再执行了（因为你这一个业务逻辑已经出问题了，没有往下执行的必要了）
            int[] arr = {1,3,5};
            System.out.println(arr[10]);
            int[] ab = null;
            System.out.println(ab[0]);
        }catch(ArithmeticException | NullPointerException | ArrayIndexOutOfBoundsException e){
            e.printStackTrace();//快速定位异常出现的位置
        }
    }

    public static void main7(String[] args) {
        ArithmeticException e = new ArithmeticException();
        e.printStackTrace();
        NullPointerException e1 = new NullPointerException();
        e1.printStackTrace();
    }

    public static void main6(String[] args) {
        //这就是一个业务逻辑
        try{
            System.out.println(100 / 0);

        }catch(ArithmeticException e){
            e.printStackTrace();//快速的定位异常出现的位置
            System.out.println("你这里出现算术异常了！");
        }catch(NullPointerException e){
            System.out.println("你这里出现空指针异常了!");
        }
        //这后面也是一个业务逻辑
        System.out.println("执行后续代码");
    }





    //异常举例
    public static void main5(String[] args) {
        boolean ret = false;
        if(!ret){
            return;
        }
        System.out.println(" rensc");
    }



    public static void main2(String[] args) {
        System.out.println(100 / 0);//抛出异常后，程序终止
        System.out.println("继续执行后续代码");//这行代码不会被执行
    }


    public static void main1(String[] args) throws CloneNotSupportedException {
//        //算术异常
//        System.out.println(100 / 0);
//        //数组越界异常
//        int[] arr = {1,2,3};
//        System.out.println(arr[100]);
//        //空指针异常
//        int[] arr1 = null;
//        System.out.println(arr1.length);
//        //输入不匹配异常
//        Scanner scanner = new Scanner(System.in);
//        int a = scanner.nextInt();
//        System.out.println(a);
//
        //受查异常/编译时异常
        Person person = new Person();
        Person person1 = (Person) person.clone();

        //错误举例
//        fun();
//    }
//    public static void fun(){
//        fun();
//    }
    }
}